#ifndef __SAL_TYPE__H__
#define __SAL_TYPE__H__

/**
 * @file kal.h
 */

/*
#if !defined(_SAL_LINUX_KM) && !defined(_SAL_LINUX_UM)
#define _SAL_LINUX_UM
#endif
*/
#ifdef __cplusplus
extern "C"
{
#endif

#include <sys/types.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <bits/wordsize.h>
#include <inttypes.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <time.h>



typedef int8_t      int8;   /**< 8-bit  signed integer */
typedef int16_t     int16;  /**< 16-bit signed integer */
typedef int32_t     int32;  /**< 32-bit signed integer */
typedef int64_t     int64;  /**< 64-bit signed integer */
typedef uint8_t     uint8;  /**< 8-bit  unsigned integer */
typedef uint16_t    uint16; /**< 16-bit unsigned integer */
typedef uint32_t     uint32; /**< 32-bit unsigned integer */
typedef uint64_t    uint64; /**< 64-bit unsigned integer */
typedef float       float32; /**< 32-bit signed float */
typedef double      float64; /**< 64-bit signed float */
typedef time_t sal_time_t;


typedef uint32  hw_mac_addr_t[2];
typedef uint8   mac_addr_t[6];
typedef uint32  ip_addr_t;
typedef uint32  ipv6_addr_t[4];


#undef TRUE
#ifndef TRUE
#define TRUE 1
#endif

#undef FALSE
#ifndef FALSE
#define FALSE 0
#endif

#ifndef NULL
#define NULL 0
#endif

#ifndef INLINE
#ifdef _MSC_VER
#define INLINE __inline
#elif __GNUC__
#define INLINE __inline__
#else
#define INLINE
#endif
#endif

#ifdef __cplusplus
}
#endif

#endif /* !__SAL_TYPE__H__ */

